<?php
/**
 * Класс Controller_Ajax_Feedback отвечает за обработку ajax-запросов, связанных с обратной связью
 * 
 * @author Mike
 */
class Controller_Ajax_Feedback extends Controller_Ajax {
	
	public function actionSwitch() {
		switch ($this->arrRequest[2]) {
			case 'standard' : 
				$this->actionStandardFeedback();
				break;
			default:
				$this->setError(404);
				break;
		}
	}
	
	/**
	 * Стандартный feedback со страницы "Контакты"
	 */
	public function actionStandardFeedback() {
		$objDB = Service_Database::instanse();
		$eMail = isset($_POST['email']) ? Service_Escape::absolutelyEscapeString($_POST['email']) : '';
		$text = isset($_POST['text']) ? Service_Escape::absolutelyEscapeString($_POST['text']) : '';
		$userId = User_Seance::getId();

		if (empty($eMail) || empty($text)) return $this->makeStandardError('Не получены данные');
		
		// Создаём объект для последующий валидации нужных полей
		$objData = new Data(array('text' => $text, 'e_mail' => $eMail, 'ID_user' => $userId, 'created_at' => gmdate("Y-m-d H:i:s", time())));
		$objData->validatesFormatOf = array('e_mail' => array('with' => '/^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})$/i', 'message' => 'Электронная почта заполнена неверно'));
		$objData->validatesLengthOf = array('text' => array('minimum' => 2, 'maximum' => 5000, 'message' => 'Текст сообщения должен состоять из 2-5000 символов'));
		
		$objData->validation('save');
		
		$errorsArr = $objData->getErrors(); 
		if(!empty($errorsArr)) return $this->makeStandardError('Недопустимые данные');	// Если валидация неуспешна - кидаем ошибку
		
		if($objDB->insert('feedback', $objData->tableFields)) $this->arrReturn = array('result' => 'OK');
	}
}
?>